
package com.xtsoft.platform.base.system.service;


import com.xtsoft.core.service.GenericService;
import com.xtsoft.core.utils.ResultMsg;
import com.xtsoft.platform.base.system.domain.SysResource;
import com.xtsoft.platform.base.system.domain.SysRole;
import com.xtsoft.platform.base.system.domain.SysUser;
import com.xtsoft.platform.base.system.repository.SysUserRepository;

import java.util.List;


public interface SysUserService extends GenericService<SysUser,String, SysUserRepository> {

	/**
	 * 
	 * <p> 查看是否为admin  </p>  
	 * @param sysUser
	 * @return
	 * @return boolean
	 * @throws  
	 * @author tuyingchao 
	 * @date 2020年8月18日 
	 * @time 下午7:12:20
	 */
	public boolean isAdmin(SysUser sysUser,String role);
	
	/** 
	 * 
	 * <p> 方法的功能说明  </p>  授权加return返回，但是我加失败了
	 * @param ids
	 * @param userId
	 * @return
	 * @return ResultMsg
	 * @throws  
	 * @author shijunwei  
	 * @date 2020年6月2日 
	 * @time 下午4:45:12
	 */
	public ResultMsg impower(String ids,String userId);
	
	/**
	 * 启用禁用
	 * @Description ：
	 * @author ly
	 * @date  2017年8月30日 下午4:20:13
	 * @Version ：1.0
	 * @param ids
	 * @return
	 */
	
	public ResultMsg enableOrDisable(String ids);
	
	public ResultMsg resetPassword(String userIds);

	/**
	 * 修改个人信息
	 * @param sysUser
	 * @return
	 */
	public SysUser saveUser(SysUser sysUser);
	
	
	public SysUser findByLoginId(String loginId);
	/**
	 * 
	 * <p> 根据用户Id获取角色  </p>  
	 * @param userId
	 * @return
	 * @return List<SysRole>
	 * @throws  
	 * @author defencez  
	 * @date 2020年5月9日 
	 * @time 下午3:33:11
	 */
	public List<SysRole> getSysRoles(String userId);
	/**
	 * 
	 * <p> 根据用户Id获取资源  </p>  
	 * @param userId
	 * @return
	 * @return List<SysResource>
	 * @throws  
	 * @author defencez  
	 * @date 2020年5月9日 
	 * @time 下午3:33:37
	 */
	public List<SysResource> getSysResources(String userId);
	/**
	 * 
	 * <p> 根据用户Id以及上级资源ID，获取功能按钮  </p>  
	 * @param userId
	 * @param preResourceId
	 * @return
	 * @return String
	 * @throws  
	 * @author defencez  
	 * @date 2020年5月9日 
	 * @time 下午3:45:06
	 */
	public List<SysResource> getButton(String userId, String preResourceId);
	/**
	 * 
	 * <p> 根据用户Id以及上级资源ID，获取功能按钮资源JSON串 </p>  
	 * @param userId
	 * @param preResourceId
	 * @return
	 * @return String
	 * @throws  
	 * @author defencez  
	 * @date 2020年5月9日 
	 * @time 下午3:55:20
	 */
	public String getButtonStr(String userId, String preResourceId);

	//根据用户名获取用户
	public SysUser findByUserName(String userName);
}



